In typical public key cryptographic systems, digital signature key pairs (a private key and a public key) are used to authenticate a digital signature of a subscriber to ensure that a message sent by a subscriber actually came from the subscriber sending the message. In addition to digital signature key pairs, encryption key pairs are also generally used to encrypt the data being sent from one subscriber to another subscriber. Certificates are generated by a trusted certification authority for the public keys of the private/public key pair to certify that the keys are authentic and valid. The public keys and certificates are used for two main purposes: verifying digital signatures and encrypting information. Such a system is a two key pair system. The receiver of a digitally signed e-mail or documents for example, uses the public key in the sender's verification certificate to verify the digital signature of the sender. A user wishing to send encrypted e-mail first encrypts the e-mail with a random symmetric key, then uses the intended receiver's public encryption key to encrypt the symmetric key and then attaches the encrypted symmetric key to the encrypted e-mail so that the receiver can decrypt the e-mail.
Hence, a subscriber (e.g., node, standalone unit, software application or other suitable entity) sending a message sends the data with its digital signature along with a certificate. The certificate has the certification authority signature. A receiver validates the digital signature in the received certificate. Each subscriber stores a certification authority public key to verify that the certificate was signed by the certification authority. A digital signature certificate typically includes a user public key, a user name and a signature of the certification authority. Each sender has a copy of its own certificate. To send an encrypted message, a sender accesses a directory, such as an onboard subscriber cache memory or other certificate storage medium to get a copy of the encryption certificate for a specified receiver (other subscriber).
Some information security systems that are public key based systems, support one key pair, wherein the one key pair is used to both encrypt information and to apply digital signatures. Other information security systems use the two key pair approach as indicated above. A three key pair approach has been proposed in Secured Electronic Information Society paper entitled “Seis-S10-Seis Certificate Policy, High Assurance General Id Certificate With Private Key Protected In An Electronic Id Card, Version 1.0”. This three key pair approach defines one key pair to be used as an encryption key pair for key encipherment, one key pair is used as an authentication key pair is used for digital signatures and the third key pair is used for non-repudiation usages (e.g., digital signatures having longer lives). However, with all of these known approaches, such systems typically support only a fixed number of keys or key pairs and/or fixed types of key pairs.
For example, conventional public key cryptography systems and other cryptographic systems allow the replacement of a symmetric key or public key pair when the key expires, but typically only the same type of key pair or key is allowed to be used. Where a new key pair is desired, such as when a key pair expires, there typically needs to be an out of band communication to ensure that the critical keys are not obtained by an unscrupulous party. As such, there are typically manual processes for generating and transferring key information.
When an additional key pair is required (rather than the replacement of an existing key), new application software has to typically be loaded that can accommodate a different security structure having a different number of key pairs since applications typically are hard coded to accommodate a specific cryptographic approach. Changes required to allow a subscriber to interface with another subscriber or management server having a different number of key pairs or a different number of keys, generally require the systems to be shut down and reinitialized with new codes to allow the subscribers to be cryptographically compatible. With a greater number of information security infrastructures available, it would be desirable to have a system that can support the dynamic variation of the number of keys (e.g., symmetric keys) or key pairs to allow N key pairs and associated credentials to be automatically generated without reinitializing a subscriber. Hence, it would be desirable if there was a system that allowed a subscriber, such as a software application or processing unit, to perform an initial log in with existing security credentials and dynamically update the existing credentials set by, for example, adding additional key pairs and/or different types of key pairs.
Inter-operability problems arise between infrastructures using dual key pairs and infrastructures using one key pair. In addition, it can be difficult to enhance security architectures around a fixed number of key pairs when it is desired to increase the number of fixed key pairs. Typically, the number of key pairs are fixed, but the actual key pairs may be revoked and new key pairs may be issued for the same purpose. These may be generated through an off-line generation technique. As known in the art, additional security credential information is used with key pairs such as the public key certificates.
In addition, Internet browsers are known which allow adding key pairs and the maintenance of key pairs by using a list of key pairs where each key pair is typically dedicated to one CA. Also, a user has to request each key pair from each certificate generator or service provider. For each certification authority to which a browser enrolls, a key pair is generated and a certificate is registered and issued.
Consequently, a need exists for an improved information security system that can dynamically create security keys for subscribers that already have a preexisting security credential set.